using UnityEngine;
using UnityEngine.SceneManagement;

public class TRIG_LEVELTRANSITION : MonoBehaviour
{
	public int LevelToGo;

	[Header("Multiplier, 1 = normal | 0.5 = half speed")]
	[SerializeField]
	private float TransitionSpeed = 1f;

	[SerializeField]
	private NewMainMenuManager.MainMenuStates TargetState = NewMainMenuManager.MainMenuStates.Hypothetical;

	[Header("-= Audio =-")]
	[SerializeField]
	private AudioClip PlaySoundOnTransition;

	[SerializeField]
	private float SoundVolume = 1f;

	private void OnTriggerEnter2D(Collider2D other)
	{
		if ((bool)other.GetComponent<PlayerManager>())
		{
			PlayerPrefs.SetInt("Game_PreviousVistedRoom", SceneManager.GetActiveScene().buildIndex);
			BeginTransition(TransitionSpeed);
		}
	}

	public void BeginTransition(float Speed = 1f, bool UnpauseOnEnd = false)
	{
		if (ChatboxManager.Instance.ChatIsCurrentlyRunning)
		{
			ChatboxManager.Instance.EndText();
		}
		UI_FADE.Instance.StartFadeIn(LevelToGo, Speed, UnpauseOnEnd, TargetState);
		if (PlaySoundOnTransition != null)
		{
			PlayerManager.Instance.PlayerAudioSource.PlayOneShot(PlaySoundOnTransition, SoundVolume);
		}
	}

	public void SimpleBeginTransition()
	{
		if (ChatboxManager.Instance.ChatIsCurrentlyRunning)
		{
			ChatboxManager.Instance.EndText();
		}
		UI_FADE.Instance.StartFadeIn(LevelToGo, TransitionSpeed, UnpauseOnEnd: false, TargetState);
		if (PlaySoundOnTransition != null)
		{
			PlayerManager.Instance.PlayerAudioSource.PlayOneShot(PlaySoundOnTransition, SoundVolume);
		}
	}
}
